문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 디바이스 드라이버 (문단 편집) == 상세 == 연결을 하기 위해 해당하는 하드웨어나 특수한 소프트웨어 인터페이스에 대한 별도의 정보가 포함되어 있다. 예를 들어 프린터나 디스플레이 모니터 등을 새로 구입했다면 사용자는 이에 관련된 드라이버를 새로 설치해야 한다. 또한 지금 쓰고 있는 드라이버에 문제가 생겼다면 당연히 최신 버전의 드라이버로 업데이트를 해줘야 한다. 대표적으로 [[GeForce 20]]의 경우 Windows에서 자동으로 잡아주는 드라이버에서는 [[언리얼 엔진]]에서 주기적인 모니터 깜빡임을 유발하기 때문에 반드시 최신 드라이버를 받아서 새로 깔아줘야 한다. 반대로 이전 버전으로 [[롤백#s-1.1]]해 줘야 하는 경우도 있다. 그래서 대개 유명 메이커는 자사의 제품에 대해서 꾸준한 드라이버 지원을 해 주며, 운영 체제 차원에서도 드라이버가 제공되지만, 그렇지 않은 경우에는 제품 공급사에서 별도로 제공하는 드라이버를 사용하면 된다. 그리고 사실, 웬만하면 공급사가 제공하는 드라이버를 사용하는 게 좋다. 특히 회사가 그렇게 자랑하는 특수 기능을 이용하려면 공급된 드라이버를 깔아야 한다. 안 그러면 컴퓨터는 돌아가지만 '''제 성능을 하나도 못 낸다.''' 자신의 컴퓨터에 설치된 하드웨어의 드라이버를 못 찾겠으면 [[3DP|3DP Chip]]같은 자신의 하드웨어에 맞는 드라이버를 찾아주는 유틸리티로 간단히 찾아낼 수 있다. 만약 [[Windows 7]] 이상 버전이면 어지간한 하드웨어는 전부 잡아내서 전용 드라이버로 설치해주기도 한다. 제조사가 망하거나, 출시 후 너무 오랜 시간이 지나면 드라이버를 제공하지 않는다. 대체로 유명 제조사라 해도 출시 후 6~8년이 지난 후에 나온 윈도우에 대해서는 지원을 포기했다. 이런 경우 사용자는 OS 업그레이드를 못 하고 일부러 구형 OS를 사용하거나, 멀쩡한 부품을 갖다 버려야 한다. 이런 목적으로 2019년까지 [[Windows 98]]을 돌리는 [[인텔 펜티엄III 시리즈|펜티엄 3]] 컴퓨터를 유지하는 경우가 간혹 있다. [[똥컴]] 문서 참고. 아주 간혹 오픈소스 드라이버가 나오는 경우는 있다. 드라이버는 커널을 마음대로 손댈 수 있다. 즉 커널 함수를 쓸 수 있다는 것이다. (ntoskrnl.exe의 함수를 사용할 수 있다) 이렇듯 커널에 영향을 줄 수 있는 소프트웨어이기 때문에 옛날에는 드라이버끼리 충돌을 일으켜서 [[커널 패닉]]이 일어나는 일이 종종 있었다. [[빌 게이츠의 굴욕]] 역시 이거 때문에 벌어진 일이다. 그래서 당시에는 속칭 '궁합'을 잘 맞추는 것도 컴퓨터 실력을 측정하는 기준이 되기도 했다. 물론 지금은 거의 옛날 이야기가 되었다. 안전성을 엄격하게 확인하여 Microsoft의 WHQL 인증을 받은 하드웨어 드라이버만 작동할 수 있게 되어서 드라이버로 인해 커널 패닉이 발생하는 경우가 많이 줄어들었다. 또한 드라이버가 불안정하면 아무리 성능이 좋아도 널리 쓰이기가 힘들어서 고수들만 많이 쓰는 부품이 되기도 한다. 대표적인 예로 예전에 인기가 있었던 국산 [[사운드 카드]]인 사운드 트랙 시리즈는 드라이버 설치가 까다롭기로 악명이 자자했었다. 또 커널 함수를 쓸 수 있다는 점에서 [[보안 취약점]]으로 작용하기도 했다. [[해커]]들이 드라이버를 만들어 악성 코드에 삽입. 실행시 드라이버를 자동으로 설치하는 식이다. 악성 드라이버의 주 목적은 악성 코드 보호 등이다. 또한 프로세스 목록에서 악성 프로세스가 나오지 않게 하기도 하는데, 그러면 메모리 단위에서 검사하여 찾는 것 예외에는 프로세스가 실행되고 있음을 알 수 없다. 사실 이건 유저모드에서도 후킹을 통해 구현할 수 있다. Microsoft도 이에 대한 대책을 마련해 놓았다. [[Windows 2000]] 이후의 NT 계열 윈도우는 서명이 없거나 올바르지 않은(변조된) 드라이버는 설치시 경고 메시지를 띄우고 설치 여부를 사용자가 선택할 수 있다. [[Windows 8]] 이후부터[* 임베디드 계열의 경우 [[Windows 7|Windows Embedded 7 Standard]]부터 해당된다.] 서명이 안 된 드라이버는 설치를 매우 까다롭게 해놨다. 먼저 UEFI 설정에서 보안 부트(Secure Boot) 기능을 끄고, 관리자 권한으로 명령 프롬프트를 실행한 다음 {{{bcdedit /set {default} bootmenupolicy legacy}}}를 입력한 후 다시 부팅해 부팅 로고가 뜨기 직전에 F8키를 눌러서 Windows 부팅 관리자로 접근하거나, 윈도우가 돌아가고 있는 상황에선 [[Windows 10/버전/Redstone 4|Windows 10 Redstone 4]] 기준으로 시작 → 설정에 들어가서 업데이트 및 보안 → 복구 → 고급 시작 옵션 아랫쪽의 지금 다시 시작 버튼을 눌러 재부팅을 시켜, 고급 시작 옵션 화면이 떴을 때 '드라이버 서명 적용 사용 안 함'을 선택해 부팅하지 않는 이상은 아예 설치하지 못하게 막아놨다. 이 방식은 서명이 되지 않은 드라이버를 하나만 설치할 때나 해당되고, 2개 이상을 설치해야 한다면 드라이버를 매번 설치할 때 마다 Windows 부팅 관리자를 띄워서 '드라이버 서명 적용 사용 안 함'을 선택해야 한다. 그래서 부팅하기 매우 번거로워지기 때문에 좀더 편리한 방법을 소개한다. 먼저 명령 프롬프트를 관리자 권한으로 실행한다. 명령 프롬프트에서 {{{bcdedit -set TESTSIGNING ON}}}을 입력한 후[* 인터넷에 흔히 찾아볼 수 있는 가이드에는 {{{bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS}}}도 같이 입력하라고 되어 있는데, 이것은 [[Windows Vista]]에서만 적용 가능하고 [[Windows 7]]부터는 무시되기 때문에 굳이 입력할 필요가 없다. 참고로 해당 명령어를 취소하고 원래대로 되돌리려면 {{{bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS}}}를 입력하면 된다.] '작업을 완료했습니다.'[* 명령 프롬프트에서 {{{bcdedit -set TESTSIGNING ON}}}를 입력했는데 '요소 데이터를 설정하는 동안 오류가 발생했습니다. 값은 보안 부팅 정책에 의해 보호되며 수정 또는 삭제할 수 없습니다.' 라는 결과물이 출력되면 해당 PC의 메인보드 롬에 심어진 펌웨어는 바이오스가 아닌 UEFI이며, UEFI 설정 메뉴에서 보안 부트 기능이 켜져 있음을 뜻하므로 제조사가 제공한 메뉴얼을 보고 보안 부트 기능을 꺼야만 '작업을 완료했습니다.' 라고 뜨며 정상적으로 적용된다.]라고 뜬걸 확인하고 재부팅을 하면 굳이 매번 Windows 부팅 관리자를 띄워야 하는 번거로움은 사라질 것이다. 하지만, 필요한 드라이버를 전부 다 설치하고 그냥 내버려 두는것은 보안상 좋지 않기 때문에 다시 관리자 권한으로 명령 프롬프트를 실행해서 {{{bcdedit -set TESTSIGNING OFF}}}를 각각 입력한 후 재부팅을 하고, UEFI 설정에 들어가서 보안 부트 기능을 다시 켜줘야 한다. 그 외에도 커널 디버거를 키고 [[WinDbg]]로 연결시키면 자동으로 테스트 서명 및 드라이버 서명 확인 적용 사용 안함이 적용된다. 자신이 직접 드라이버를 만들고 싶다면 Windows SDK와 DDK를 설치하면 된다. 일반 소프트웨어와 달리 드라이버는 오류가 발생하면 사소한 것이라도 반드시 [[블루스크린|파란 화면]]을 보게 되며, 이때 오류코드는 KMODE_EXCEPTION_NOT_HANDLED이다. 그래서 일반 프로그램을 제작하는 것보다 더욱 주의해야 하며, 실제 컴퓨터가 아닌 [[가상머신]]이나 테스트 전용 컴퓨터에서 드라이버 작동을 테스트해야 한다. 이런 이유로 DDK에는 드라이버 개발을 위한 [[WinDbg]]라는 윈도우 디버깅 도구가 들어가 있다. 참고로 드라이버 개발 중에 블루스크린이 일어나는 대부분의 원인은 포인터 참조과 관련되어 있다. 즉 포인터 변수를 잘못 다루면 블루스크린이 일어날 수 있다는 것이다. [[Microsoft Windows/커널|Windows 커널]]은 [[C(프로그래밍 언어)|C언어]]를 사용하므로 드라이버도 C언어로 작성해야 한다. MS에서는 C++ 사용을 금지하지 않고 있지만 C언어로 만들어진 커널와 제대로 호환되지 않아서 문제가 발생할 수 있다. [[https://kuaaan.tistory.com/495|#]]저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기